The present disclosure relates to network communications in general and to optimizing network communications in particular. Data communications networks, such as local area networks (LANs) and wide area networks (WANs) often include a variety of network devices for sending, receiving, directing, and optimizing network data traffic. WAN optimization devices are one type of network device that improve network performance in reading and/or writing data over a WAN such as the internet or a private WAN. WAN optimization devices can operate alone or in pairs to compress, prefetch, cache, and otherwise optimize network traffic. For example, a WAN optimization device may intercept network traffic from a server before it reaches the WAN; compress this network traffic; and communicate this compressed network traffic over the WAN to a second WAN optimization application or device near or within a client device. The second WAN optimization application or device can then decompress or otherwise process the compressed network traffic to reconstruct the original network traffic and forward it, if necessary, to the destination client device.
WAN optimization devices are referred to in the art by many different terms, including, but not limited to, transaction accelerators, WAN optimizers, WAN optimization controllers (WOCs), wide-area data services (WDS) appliances, WAN traffic optimizers (WTOs), and protocol accelerators or optimizers. Additionally, techniques for optimizing network traffic to improve network performance in reading and/or writing data over a network are referred to in the art by many different terms, including, but not limited to, WAN acceleration, transaction acceleration, transaction pipelining, protocol pipelining, request prediction, application flow acceleration, and protocol acceleration. In this disclosure, the term “WAN optimization device” is generally used to refer to any device that performs network optimization, and “WAN optimization” is used to refer to any technique that is used for performing network optimization.
In some services, a client application can use a resource identifier to access a resource. However, it can be very challenging to perform caching for some of these services. For example, in a popular video service that is available over the Internet, video segments are accessed using Hypertext Transfer Protocol (HTTP) requests. However, the Universal Resource Locators (URLs) of these HTTP requests vary between requests for the same video segment, which makes it impossible to use exact URL matching for caching the video segments. Therefore, what are needed are techniques and systems to improve network performance for such services.